package cn.cleanarch.infra.idp.pms.constants;

/**
 * 媒体内容类型常量定义
 */
public final class ContentTypeConstants {

    private ContentTypeConstants() {
        // 防止实例化
    }

    // HTML相关
    public static final String TEXT_HTML_UTF8 = "text/html; charset=UTF-8";
    public static final String TEXT_HTML = "text/html";
    public static final String TEXT_HTM = "text/htm";

    // 样式表
    public static final String TEXT_CSS = "text/css";
    
    // JavaScript
    public static final String APPLICATION_JAVASCRIPT = "application/javascript";
    public static final String TEXT_JAVASCRIPT = "text/javascript";

    // 图像
    public static final String IMAGE_PNG = "image/png";
    public static final String IMAGE_JPEG = "image/jpeg";
    public static final String IMAGE_JPG = "image/jpg";
    public static final String IMAGE_GIF = "image/gif";
    public static final String IMAGE_SVG = "image/svg+xml";
    public static final String IMAGE_ICO = "image/x-icon";
    public static final String IMAGE_BMP = "image/bmp";
    public static final String IMAGE_WEBP = "image/webp";

    // 字体
    public static final String FONT_WOFF = "font/woff";
    public static final String FONT_WOFF2 = "font/woff2";
    public static final String FONT_TTF = "font/ttf";
    public static final String FONT_EOT = "application/vnd.ms-fontobject";

    // 文档
    public static final String APPLICATION_PDF = "application/pdf";
    public static final String APPLICATION_DOC = "application/msword";
    public static final String APPLICATION_DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
    public static final String APPLICATION_XLS = "application/vnd.ms-excel";
    public static final String APPLICATION_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    public static final String APPLICATION_PPT = "application/vnd.ms-powerpoint";
    public static final String APPLICATION_PPTX = "application/vnd.openxmlformats-officedocument.presentationml.presentation";

    // 压缩包
    public static final String APPLICATION_ZIP = "application/zip";
    public static final String APPLICATION_RAR = "application/x-rar-compressed";
    public static final String APPLICATION_7Z = "application/x-7z-compressed";
    public static final String APPLICATION_TAR = "application/x-tar";
    public static final String APPLICATION_GZ = "application/gzip";

    // 其他
    public static final String APPLICATION_OCTET_STREAM = "application/octet-stream";
    public static final String TEXT_PLAIN = "text/plain";
    public static final String TEXT_XML = "text/xml";
    public static final String APPLICATION_JSON = "application/json";

    // 缓存控制
    public static final String CACHE_CONTROL_PUBLIC = "public, max-age=3600";
    public static final String CACHE_CONTROL_PRIVATE = "private, max-age=0, no-cache, no-store";
    public static final String CACHE_CONTROL_NO_CACHE = "no-cache";
}